更新时间:2024-03-07 22:28
Vegas是TCP变体 Vegas对传统TCP做了相当大的改进,更快速的重传为了避免对操作系统粗粒度时钟的依赖,Vegas在每次重复的ACK到来时,都检查对应的segment是否已经可以超时重传。
简介
发生重传时,如果重传的segment是在上一个大小的拥塞窗口下发送的,则不对拥塞窗口做减半操作。这么做可以避免拥塞窗口被过分减小导致传输性能下降。拥塞预测利用吞吐率的变化调整拥塞窗口,而不是利用丢包来检测拥塞。每收到一个有效的ACK,计算如下三个值: Expected= WindowSize/BaseRTT Actual = SentData/ActualRTT Diff = Expected- Actual 其中,BaseRTT是该连接上观测到的最小的RTT值;ActualRTT是被确认segment从发送到收到相应ACK的时间间隔;SentData是ActualRTT内实际发送的数据量。 Vegas定义两个常量a,b(a<b),当Diff<a时,则线性增加拥塞窗口;当Diff>b时,线性减少拥塞窗口。这种拥塞控制方式是在拥塞将要发生时控制,而不是在拥塞发生后控制。正因为如此,Vegas的吞吐率不会象上面几种TCP,会有较大的波动。这种控制方式在高速高延迟的网络中,对性能的提升非常明显。慢启动的改进与拥塞预测的改进机制类似,通过监视吞吐率的变化来决定是否离开慢启动模式。 通过以上三方面的改进,Vegas可以提高带宽的利用率,减少重传次数,减少超时次数。这些改进主要针对大带宽高延迟的链路。